dofile "lib/radical.lua"

function tile(s) 
  return const.path.gfx.."game/ssk/"..s..".jpg"; 
end

function dxml(s)
  return const.path.dlg.."3-inter/ssk/"..s..".xml";
end

ssk = engine.state {
   _weather     = false --Peter talked with Barhatov about weather (or refused to talk)
  ,_tech1       = false --Peter finished all things in tech1
  ,_tech2       = false --Peter finished all things in tech2
  ,_lamp        = false --Lamp is on
  ,_trajectory  = false --Peter saw a eye trajectory on the photo
  ,_girl        = false --Peter saw a girl on the photo
  ,_truck       = false --Peter saw a truck on the photo
  ,_wrong       = false --Peter guessed wrong
}

ssk_player = musplayer.player {
   sfx("items3"):inside("tech1_window_open")
}

main = engine.main {
   start        = chain_ {
                     episode_("3-ssk")
                    ,musplayer_("ssk_player")
                    ,take_("cellphone")
                    ,walk_("start")
                  }
  ,finish       = gamefile_("3-inter/cell.lua")
}

start = pause {
   time         = 500
  ,enter        = set_checkpoint
  ,next         = "tech1"
}

cellphone = item {
   nam          = "Мобильный телефон"
  ,ico          = ico "cellphone"
  ,activate     = choose_ {
                     ["here()==coridor3"] = walk_("boss_dlg")
                    ,["default"] = chain_ { inventory.clearitem, refresh_("Сейчас Петру не нужно ни с кем говорить.") }
                  }
}

coridor = scene {
   tile         = { tile "window2", 0, 20 }
  ,enter        = choose_ {
                    ["ssk._tech2"] = walk_("coridor2")
                  }
  ,bounds       = { 150, nil, 700 }
  ,dsc          = "С этой стороны здания солнце не светит, и в коридоре довольно сумеречно."
  ,alwaysdsc    = true
  ,nav          = {
                     up = vw("К лифту"):cnd("false", "Лучше бы сначала узнать, удалось ли что-нибудь восстановить с жестких дисков.")
                    ,right = vw("Во второй технический отдел", "tech2")
                    ,down = vw("В отдел Бархатова", "tech1")
                  }
}

coridor2 = scene {
   tile         = { tile "window2", 0, 20 }
  ,bounds       = { 150, nil, 700 }
  ,dsc          = "С этой стороны здания солнце не светит, и в коридоре довольно сумеречно."
  ,alwaysdsc    = true
  ,nav          = {
                     up = vw("К лифту", "coridor3")
                    ,right = vw("Во второй технический отдел", "coridor3")
                    ,down = vw("В отдел Бархатова", "coridor3")
                  }
}

coridor3 = scene {
   tile         = { tile "window2", 0, 20 }
  ,bounds       = { 150, nil, 700 }
  ,dsc          = "Звонит телефон.^Судя по номеру -- из кабинета Лавровского. Петр почти уверен, что ему предстоит не самый приятный разговор."
  ,alwaysdsc    = true
  ,ontimer      = function(s,x,y)
                    if s.fno == nil then
                      s.fno = 0;
                    end
                    s.fno = s.fno + 1;
                    if s.fno == 1 or math.mod(s.fno, 80) == 0 then
                      play_sound("phone");
                    end
                  end
  ,nav          = {
                     up = vw("К лифту"):cnd("false", "Лучше ответить. Это может быть что-то срочное.")
                    ,right = vw("Во второй технический отдел"):cnd("false", "Лучше ответить. Это может быть что-то срочное.")
                    ,down = vw("В отдел Бархатова"):cnd("false", "Лучше ответить. Это может быть что-то срочное.")
                  }
}


tech1 = scene {
   tile         = tile "window"
  ,bounds       = { 300, 340, 640 }
  ,obj          = { "tech1_env", "tech1_window", "barhatov" }
  ,nav          = {
                    down = vw("Выйти в коридор", "coridor"):cnd("ssk._tech1","Лучше подождать здесь, пока Бархатов закончит говорить.")
                  }
}

tech1_env = staticitem {
   dsc          = [[В {информационном отделе} довольно тихо -- слышно лишь клацание клавиш да мерный шум вентиляторов у рабочих станций, --
                    и из-за этого голос Бархатова, который говорит по телефону, кажется каким-то резким и громким.]]
  ,act          = [[Информационный отдел всегда напоминал Петру какую-то комнату забытых вещей. Все здесь, казалось,
                    находится не на своих местах. Дорогие современные рабочие станции стоят в пыли рядом с разобранными
                    системные блоками, из которых торчат перепутанные провода. Обои на стене давно выцвели, а местами
                    даже ободраны, однако у потолка висит огромный плоский телевизор, на который, правда, выведено черное
                    окно служебного терминала. А еще здесь, независимо от времени года, стоит вечная духота, а воздух
                    пыльный и спертый. Удивительно, как вся эта техника еще работает.]]
  ,showonce     = true
}

tech1_window = staticitem {
   dsc          = "В незашторенное {окно} так ярко светит солнце, что Петр невольно прикрывает глаза рукой."
  ,act          = [[А под вечер неожиданно распогодилось. Тротуары, залитые водой, сверкают в солнечных лучах. Петру даже
                    хочется {walk(tech1_window_open)|открыть окно}.]]
  ,disable      = if_("ssk._weather")
}

tech1_window_open = pause {
   time         = 1500
  ,next         = "barhatov_dlg"
}

barhatov = staticitem {
   dsc          = [[За столом у стены, заваленном стопками мятых бумаг со следами от кофе, сидит {Бархатов}. В этот раз именно он
                    руководит командой, которая занимается черным ящиком упавшего Ока.]]
  ,act          = choose_ {
                     ["default"] = 
                        [[Бархатов говорит по телефону. Он смотрит на Петра, качает головой и слегка трясет в руке телефонной трубкой.
                          Кажется, его самого уже утомил этот разговор.]]
                    ,["ssk._tech1"] = walk_("barhatov_dlg")
                  }
}

barhatov_dlg = dialog {
   tile         = tile "window"
  ,bounds       = { 300, 340, 640 }
  ,dsc          = choose_ {
                     ["default"] = 
                        [[Бархатов наконец закончил говорить.^
                          -- Привет. Окно не открывается, к сожалению... Да, извини, что пришлось ждать. Меня самого уже достали. Уж домой скоро 
                          пора, а до сих разогнуться не могу... Кстати, погодка-то как разыгралась. Грешно в офисе сидеть.]]
                    ,["ssk._tech1"] = "-- Слушай, если мы что-нибудь еще найдем, я тебе обязательно позвоню. Правда... сомневаюсь, что сегодня до конца дня что-нибудь еще будет."
                  }
  ,dlg          = dxml "barhatov"
}

tech2 = scene {
   tile         = tile "darkwall"
  ,bounds       = { 100, nil, 750 }
  ,dsc          = "В этой комнате совсем темно -- на многих столах даже не горят настольные лампы. Лишь слабо светят экраны мониторов."
  ,alwaysdsc    = true
  ,obj          = { "igor" }
  ,nav          = {
                    down = vw("Выйти в коридор", "coridor")
                  }
}

igor = staticitem {
   dsc          = "Петр даже не сразу замечает {Игоря}, который сидит в кресле, сцепив руки и опустив голову, точно вот-вот провалится в сон."
  ,act          = walk_("igor_dlg")
}

igor_dlg = dialog {
   tile         = tile "darkwall"
  ,bounds       = { 100, nil, 750 }
  ,dsc          = choose_ {
                    ["ssk._tech2"] = "-- Давай завтра, а? Может, и правда получится что-нибудь еще восстановить."
                  }
  ,dlg          = dxml "igor"
}

desk = scene {
   tile         = choose_ {
                     ["default"] = { tile "lamp_off", 0, 20 }
                    ,["ssk._lamp"] = { tile "lamp_on", 0, 20 }
                  }
  ,hohud        = true
  ,bounds       = { 380, 340, 540 }
  ,obj          = { "desk_switch", "desk_photos", "desk_photo1", "desk_photo2", "desk_photoquality", "desk_igor" }
  ,nav          = {
                    up = vw("Оставить фотографии", "igor2_dlg")
                  }
}

desk_switch = staticitem {
   dsc          = choose_ {
                     ["default"] = 
                        [[Металлическая лампа, склонившаяся над столом, почему-то напоминает Петру о мастерской, где проявляются фотографии.
                          Он почти уверен, что он загорится красным светом, стоит лишь ее {включить}.^^]]
                    ,["ssk._lamp"] =
                        [[Свет лампы кажется таким обжигающе ярким, что невольно хочется, как выразился Игорь, {дать отдохнуть глазам}.^^]]
                  }
  ,act          = chain_ { toggle_("ssk._lamp"), sound_("switch"), walkblack_("desk") }
}

desk_photos = staticitem {
   dsc          = "На столе, среди кучи бумаг, лежат две распечатанные на широких листах {фотографии}."
  ,act          = "Лучше сначала включить свет."
  ,cnd          = not_("ssk._lamp")
}

desk_photo1 = staticitem {
   dsc          = [[{Одну} из фотографий Око сделало на довольно большой высоте, пролетая в опасной близости от заброшенного панельного дома -- 
                    можно разглядеть дорогу, уходящую в черный тоннель, и парковку с брошенными автомобилями у супермаркета,]]
  ,act          = chain_ { sound_("paper2"), walkblack_("desk_photolook1") }
  ,cnd          = if_("ssk._lamp")
}

desk_photo2 = staticitem {
   dsc          = "а {вторая}, судя по всему, была снята неподалеку от того места, где Око разбилось."
  ,act          = chain_ { sound_("paper2"), walkblack_("desk_photolook2") }
  ,cnd          = if_("ssk._lamp")
}

desk_photoquality = staticitem {
   dsc          = "Оба снимка довольно {скверного качества},"
  ,act          = "Такое впечатление, что съемка делалась не технологичными камерами высокого разрешения, которые устанавливают на Око, а дешевой мыльницей."
  ,showonce     = true
  ,cnd          = if_("ssk._lamp")
}

desk_igor = staticitem {
   dsc          = "и, хотя {Игорь}, как видно, пытался обработать изображение, фотографии все равно очень мутные и не в фокусе."
  ,act          = walk_("quality_dlg")
  ,cnd          = if_("ssk._lamp")
  ,showonce     = true
}

quality_dlg = dialog {
   tile         = { tile "lamp_on", 0, 20 }
  ,bounds       = { 380, 340, 540 }
  ,dlg          = dxml "quality"
}

desk_photolook1 = scene {
   tile         = choose_ {
                     ["default"] = { tile "lamp_off", 0, 20 }
                    ,["ssk._lamp"] = { tile "lamp_on", 0, 20 }
                  }
  ,bounds       = { 380, 340, 540 }
  ,hohud        = true
  ,dsc          = [[Да, действительно. Снимок сделан неподалеку от заброшенного цеха, где они нашли обломки Ока. Скорее всего это одна из последних фотографий,
                    снятых аппаратом -- буквально за несколько секунд до крушения.^]]
  ,obj          = { "desk_photolook1_trajectory", "desk_photolook1_oldcars", "desk_photolook1_figure" }
  ,alwaysdsc    = true
  ,nav          = {
                    left = vw("Отложить фотографию", chain_ { sound_("paper2"), walkblack_("desk") } )
                  }
}

desk_photolook1_trajectory = staticitem {
   dsc          = "Судя по траектории аппарата, он должен был пролететь над тротуаром мимо цеха. {Непонятно}, во что он мог врезаться."
  ,act          = chain_ {
                    set_("ssk._trajectory"),
                    "Это если, конечно, маршрутный компьютер не изменил его траекторию через несколько секунд."
                  }
  ,showonce     = true
}

desk_photolook1_oldcars = staticitem {
   dsc          = "Неподалеку от въезда во двор, где проходили поиски, стоят несколько насквозь проржавевших {автомобилей}."
  ,act          = "Вряд ли это чем-то поможет. В старом городе довольно много брошенных автомобилей."
  ,showonce     = true
}

desk_photolook1_figure = staticitem {
   dsc          = [[Еще на фотографии видно часть здания, в котором Петр нашел жесткие диски Ока. На крыше можно заметить
                    человеческую {фигуру}, совсем размытую, почти как тень.]]
  ,act          = chain_ {
                    set_("ssk._girl"),
                    "Наверное, это задержанная ими девушка. Впрочем, на снимке такого качества ни в чем нельзя быть уверенным."
                  }
  ,showonce     = true
}

desk_photolook2 = scene {
   tile         = choose_ {
                     ["default"] = { tile "lamp_off", 0, 20 }
                    ,["ssk._lamp"] = { tile "lamp_on", 0, 20 }
                  }
  ,hohud        = true
  ,bounds       = { 380, 340, 540 }
  ,dsc          = [[Судя по всему, это фотография одной из улиц совсем неподалеку от черты -- у самой границы мертвого города.]]
  ,obj          = { "desk_photolook2_rocks", "desk_photolook2_supermarket", "desk_photolook2_cars" }
  ,alwaysdsc    = true
  ,nav          = {
                    left = vw("Отложить фотографию", chain_ { sound_("paper2"), walkblack_("desk") } )
                  }
}

desk_photolook2_rocks = staticitem {
   dsc          = [[Внизу пролегает широкая четырехполосная дорога, {засыпанная} то ли камнями, то ли обломками штукатурки.]]
  ,act          = "Видимо, это просто осыпается фасад домов."
  ,showonce     = true
}

desk_photolook2_supermarket = staticitem {
   dsc          = "Одноэтажный {супермаркет}, который частично виден на фотографии, почти полностью разрушен -- крыша обвалилась, некоторые стены тоже."
  ,act          = "Явно его не строили на века."
  ,showonce     = true
} 

desk_photolook2_cars = staticitem {
   dsc          = [[На обширной парковке рядом стоят несколько машин -- почти у всех сняты и колеса и разбиты стекла. Но внимание Петра
                    привлекает довольно массивный {грузовик}, перегородивший весь выезд и парковки. Впрочем, не исключено, что он тоже
                    простоял здесь тридцать лет, просто никто не смог снять его колеса. Даже на такой отвратительной фотографии видно, 
                    что весь кузов грузовика покрыт толстым слоем грязи.]]
  ,act          = chain_ {
                    set_("ssk._truck"),  
                    [[Кажется, Петр даже узнает модель. Судя по всему, это Старк, венгерский грузовик. Такие когда-то были довольно популярны,
                      правда, потом их перестали то ли импортировать, то ли производить.]]
                  }
  ,showonce     = true
}

igor2_dlg = dialog {
   tile         = tile "darkwall"
  ,bounds       = { 100, nil, 750 }
  ,dsc          = choose_ {
                     ["default"] = "-- Ну как? Есть от них какой толк?"
                    ,["not desk_photolook1._seen or not desk_photolook2._seen"] = "-- Что? Ничего полезного, да?"
                  }
  ,dlg          = dxml "igor2"
}

boss_dlg = dialog {
   tile         = { tile "window2", 0, 20 }
  ,bounds       = { 150, nil, 700 }
  ,dlg          = dxml "boss"
}

finita = pause {
   time         = 4000
  ,next         = "main"
}